package pe.edu.upc.karaoke.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import pe.edu.upc.karaoke.excepcion.DAOExcepcion;
import pe.edu.upc.karaoke.modelo.*;
import pe.edu.upc.karaoke.util.ConexionBD;


public class AdministradorDAO extends BaseDAO {
		
	public List<Administrador> listarAdministrador() throws DAOExcepcion {
		
		List<Administrador> lista = new ArrayList<Administrador>();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		
		try {
				String query =	"SELECT A.IDADMINISTRADOR, A.TIPO, A.DNI, P.NOMBRES, P.PATERNO, P.MATERNO FROM ADMINISTRADOR A, PERSONA P " +
								"WHERE A.DNI = P.DNI ";
				con = ConexionBD.obtenerConexion();
				stmt = con.prepareStatement(query);
				rs = stmt.executeQuery();
				
				while (rs.next()) {
					Administrador administrador  = new Administrador();
					administrador.setIdAdministrador(rs.getInt("IDADMINISTRADOR"));
					administrador.setNombre(rs.getString("NOMBRES") + " " + rs.getString("PATERNO") + " " + rs.getString("MATERNO"));
					
					lista.add(administrador);
				}
		} 
		catch (SQLException e) {
				lista = null;
				System.err.println(e.getMessage());
				throw new DAOExcepcion(e.getMessage());
		} 
		finally {
				this.cerrarResultSet(rs);
				this.cerrarStatement(stmt);
				this.cerrarConexion(con);
		}
		return lista;
	}
		
}
